home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
business
/
pb031.dms
/
pb031.adf
/
EasyCalc.doc
< prev
next >
Wrap
Text File
|
1992-11-20
|
41KB
|
1,015 lines
/-------/ / /------/
/ /-----/ -=*=- / /----/
/ / / / /
/ /---/ /----/ /----/ / / / / /----/ / /----/
/ /---/ / / / / / / / / / / /
/ / /----/ /----/ /----/ / / /----/ / /
/ /-----/ / / / / / /-----/ / / / /
/-------/ / / /----/ /----/ /-------/ / / /----/ /----/
VERSION 1.0
COPYRIGHT (C) 1992-3 ANDREW WOODS
VERSION 1.0 - USER DOCUMENTATION (MARCH 1993)
SHAREWARE INFORMATION
EasyCalc (EC for short) is SHAREWARE. Alot of time and effort has gone into
creating this program. Please help me to continue programming applications
like EasyCalc by supporting my efforts by registering. If you use this
program regularly (ie. you have not deleted it after a month), then please
send a fee of £15 pounds (UK) to:
Andrew Woods
1 Westwood Gardens
Scarborough
North Yorkshire
YO11 2JQ
UNITED KINGDOM
Send the fee with your name, address, EasyCalc version number and details of
your Amiga setup. Printer owners can print out the file, ORDER.DOC which
will generate an order form to fill in instead. Feel free to send any
comments you might have about EasyCalc with your order, I am always
interested in user feedback.
Registering will entitle you to the following priveledges:
* Help with any problems.
* Copy of the most up-to-date version available.
* Free minor upgrades.
* Telephone hotline for your problems.
* No irratating requester.
* Your name will appear in the program.
* Graphs for all your worksheets.
* DreamLink (see end of document for info on this)
Please note that to comply with this programs shareware status, a requester
will appear after every 20 cells have been entered to remind you that this
program is an "evaluation copy". And hackers out there -- it is encrypted.
I saw what you did to DiskManager2!
EasyCalc is freely distributable as long as the following rules are obeyed:
* All of the files included must be present and unmodified in all
distributions.
* EasyCalc may not be sold commercially without my consent.
* Copyright and shareware notices MUST remain intact.
DISCLAIMER
Here comes the legal bit. EasyCalc is used entirely at your own risk. I
have spent a long time ensuring that EasyCalc is as reliable as possible, but
I can not accept any responsibility for any damage or loss that results from
the use of this program.
EASYCALC FEATURES
* FAST! A major design goal was to produce a spreadsheet that would leave
all those slow Amiga ones (commercial and PD) behind. Even if you
"only" have a 68000 Amiga with 1.3 you should find that you are never left
waiting for the screen to redraw or recalculate. If you have an A1200 or
simular then it flies!
* Easy to use. Spreadsheets are fantastic programs that can really change your
business if you know how to use them. However getting past that initial
barrier of "what do I type to add this column?" is hard. I have added as
much help as is possible without making the program unusable. Hopefully
there is enough to get you through the initial barrier.
* Features you need. A program like Lotus on the PC can cost upto £500 and
have hundreds of options/features. In EasyCalc I have only implemented
the common and usefull functions. If you want to complain remember what you
paid for EasyCalc!
* Co-processor support. I'm not sure about this one. But I think on WB2.0
if there is a co-processor fitted then the maths libraries will use it. Even
without a co-processor the program recalculates very quickly. I use single
precision numbers. Although this means you can't have 16 dec.places accuracy,
it makes normal operation 100 times faster then double precision.
* Uses reqtools. This is a standard Amiga library. This gives you WB2.0 style
requestors that are easy to use, whether you have 2.0 or not.
* 160 Columns when printing.
* No stupid assigns are needed. I get everything from the current directory.
Why can't other programmers?
* Intelligent! For example if you try to delete a block of cells you will be
asked to confirm it. However if you only want to delete one cell the
program doesn't bother you. Also if you enter a date into a cell it
automatically recognises it and processes it as a date.
HISTORY OF EASYCALC
In October 1991, I started work on a spreadsheet for a College C programming
project. This was written with TurboC on the KCS PC emulator. By April 1992
it was finished, which wasn't bad going considering I was learning the C
language as I was writing the spreadsheet! Once the program was finished I
sat back never wanting to see another spreadsheet ever again.
That was the end of the story until November 1992 when I needed a spreadsheet
for some work. I looked to the trusty Amiga for a PD/Shareware effort and
was disgusted to find only three programs, all of them were unusable compared
to simular programs on other computers. I will not even mention commercial
Amiga spreadsheets which were slow and looked awfull. In the end I used
AsEasyAs on the PC. But after this I decided to write the definitive Amiga
shareware spreadsheet, but an extra goal was to produce a spreadsheet that
was easy to use, and was FAST.
EasyCalc Version 1.0 was born in March 1993. After five months of
interrupted development. In time I hope to produce some MAJOR updgrades.
INTRODUCTION
EasyCalc is a spreadsheet designed to be both easy to use and fast. If the
program looks nice, that wouldn't to be bad either. Unlike other software
where the author writes the program first, then bolts on a help system, I
have designed the help into the program from the beginning.
WHAT IS A SPREADSHEET?
Think of a spreadsheet as a peice of blank paper -- the page from an
accounting ledger for example. On this "paper" you can write numbers and
titles for sectons of the accounts. On paper you have add up columns
manually, with a spreadsheet you can write a formular, the word SUM for
example, makes the spreadsheet add up a range of numbers (called cells). The
power of spreadsheets lies in the fact that once a formular has been written,
even if you change the column of numbers, the formular will automatically add
them up again. A program like EasyCalc has many different formulars, so it
is capable of of much more than just adding columns.
SYSTEM REQUIRMENTS
If your system can meet the following requirements then you can run EasyCalc.
Memory: 1/2 meg (1 meg recommended).
WorkBench: 1.2, 1.3, 2.0, 3.0.
Devices: 1 floppy minimum (!) (2 floppies or HD recommended).
ChipSet: Original, ECS or AGA (AA) work fine (PAL only).
Processor: Any 680x0 processor (tested on 68000 and 68020)
If you have WB1.3 and WB2.0 (ie. a ROM switcher) then always run EasyCalc
with WB2.0. EasyCalc takes advantage of some 2.0 features to speed up
certain operations considerably.
PROGRAM SPECIFICATIONS
Cell Format: Single Precision, Motorola FFP.
Number Range: 5.4E-20 -> 9.2E-18 for positive values.
2.7E-20 -> -9.2E18 for negative values.
Cell Range: 127 rows x 127 columns.
Cell Types: Numeric/String/Formular.
Evaluator: Single-pass reverse polish evaluator and tokeniser.
OTHER FILES NEEDED
The following information may be usefull to users who are trying to install
EasyCalc onto a harddisk or another bootable device:
EasyCalc requires the following libraries in the LIBS: directory:
* reqtools.library (V38)
* mathieeedoubas.library
If a printer is to be used then the standard printer stuff is needed.
EasyCalc also has two directories that should be present in the same
directory as the EasyCalc program:
* /SYS - Needed to create icon files. Also the shareware message is in here.
Before you think about removing it or changing it, the program will crash if
it is tampared with. Sorry this was neccessary but blame the hackers for
removing my shareware message from a £10 program I wrote. The registered
version will not have this file. I hope you agree with my right to keep my
shareware message intact. In practise it will not interfere with normal
program operation.
* /HELP - If this is missing then help will be unavailable.
EASYCALC REFERENCE
CONVENTIONS USED IN EASYCALC
EasyCalc makes extensive use of the latest version (V38) of ReqTools. For
those who don't know, ReqTools is a freely redistributable library that
allows any programs that support it to produce WB2.0 style requesters with
ease. Even if you "only" have 1.3 (or even less!) ReqTools will look like
WB2.0. All ReqTools requesters have several things in common. For instance,
any gadget that has a letter underlined can be activated by pressing that
letter on the keyboard. If a gadget is in BOLD then you can also press
RETURN to choose it. The right-most gadget (always some sort of cancel) can
be selected by pressing ESCAPE. Finally of course, all gadgets can be
selected by clicking on them by the mouse.
As well as the features offered by ReqTools, EasyCalc has its own
conventions. Messages appear at the bottom of the screen in a grey bar.
These messages remain until a new message appears. If a stopwatch appears,
then the program is busy so don't start frantically clicking.
SPREADSHEET MENUS
PROJECT MENU
CLEAR SHEET (Amiga-Z)
Removes the current worksheet from memory. Choose this option and a
requester will appear asking you to confirm your choice. Choose Ok and the
spreadsheet will be returned to the initial state. Please not if you have a
big worksheet to remove, then it may take some moments to clear. Just be
patient.
LOAD SHEET (Amiga-L)
The ReqTools file requester will appear. Choose a file to load or cancel.
Remember to save the existing worksheet first.
SAVE SHEET (Amiga-S)
Using the ReqTools file requester, choose the file to save as. Cancel will
return you to the (unaffected) worksheet.
ABOUT (Amiga-A)
This simply displays some information about the program. If this is an
unregistered copy of EasyCalc then you will be seeing it alot!
QUIT (Amiga-Q)
Exits from EasyCalc (after asking you). Remember to save your worksheet
first, because it will be lost when you quit.
EDIT MENU
CUT (Amiga-X)
Removes the marked block (see BLOCK MARKING) from the worksheet and stores it
in the internal clipboard. When you have copied something to the clipboard
don't forget it! The clipboard is NOT saved with the worksheet.
COPY (Amiga-C)
Copies the marked block into the internal clipboard. The data is also left
on the worksheet.
PASTE (Amiga-V)
Copies data from the clipboard into the marked block. Please note that any
formulars may be modified, depending on the copy mode (see OPTIONS MENU/COPY
RELATIVE).
DELETE (Amiga-D)
Simply removes the marked block from the worksheet. Be carefull this option
will happily remove the block with no way of restoring it.
OPTIONS MENU
COPY RELATIVE (Amiga-O)
When performing copying operations on cells, this option will modify the cell
contents. For example if you copy a cell with the formular:
=10+A1
Then paste it down two cells down and across, then the cell will be become:
=10+C3
See how it works? The delta x and y (the direction of movement from the
source) is added to all cell references. This is usefull for pasting simular
formulars down all over the place with little modification. If you turn it
off, then formulars will be unmodified (usefull if you have a cell you want
referenced in all the formulars, like the VAT rate). Both modes are very
usefull, remember to use the right one! and it will save you a lot of work.
See later on for details on absolute cell references.
AUTO RECALC (Amiga-U)
With this option on, everytime you enter a formular or a number, the entire
worksheet is recalculated. This is usually quite rapid but if you have a
large worksheet or perform multiple iterations then this can be slow.
ITERATIONS (Amiga-I)
If your worksheet has "forward references" then you will need to recalculate
the worksheet more than once to resolve these. Remember that large values
can cause the recalculation to slow to a snails pace. If the recalc is slow,
then turn off the autorecalc and just recalc when you need to.
ICON FILES (Amiga-F)
This toggles whether icon files are created with saved worksheets. If icons
are created then you can invoke EasyCalc just by clicking on the worksheets
icon (which will automatically load the worksheet as well).
AUTOMOVE (Amiga-M)
When you choose this option, a requestor will appear with five choices. Four
of them control the direction you want the cursor to move after a cell has
been entered (up/down etc). The last (NONE) causes no movement after a cell
has been entered.
EUROPEAN DATES (Amiga-E)
When you enter a date, it is in the format: DD-MM-YY. This is the standard
European format. However our Trans-Atlantic cousins have their own date
system, MM-DD-YY. If the check mark is NOT set next to this option then all
dates are in American format. However remember that this option only effects
cells entered AFTER this is changed. If you want to change the format of an
existing cell then press F2 while over the cell then press RETURN. This will
force EasyCalc to recalculate the date in the new format.
GLOBAL MENU
COLUMN WIDTH (Amiga-T)
Choose this and you can enter the width that all the columns are to become.
RECALC NOW (Amiga-R)
This causes the whole worksheet to be recalculated.
PRECISION (Amiga-P)
This lets you choose how many decimal places to display in cells. Note: If
you are using general format cells then this value is ignored. Also this
function only affects cells entered AFTER this was changed.
CELL FORMAT (Amiga-B)
Lets you choose the format to display cells in. This only affects cells
entered AFTER this option is set. Currently there is only two different cell
formats:
* General - displays as many decimal places as neccesary.
* Fixed - displays the specified number of places no matter what.
These should cover most of your needs. As EasyCalc is developed there will
DEFINITLY be more added.
AT COLUMN MENU
INSERT COLUMN (Amiga-N)
Inserts a column at the specified cursor position. All cell references that
are effected are adjusted so that they still point to the correct data.
DELETE COLUMN (Amiga-Y)
Deletes the current column (ie. the one at the cursor position). Cell
references are updated as above.
SET WIDTH (Amiga-W)
Allows you adjust the width of the current column. You can use the cursor
keys to adjust the width until all the data is visible. F1 allows you to
enter a number for the column width. Press HELP to bring up some extra info
on this option.
INSERT ROW (Amiga-G)
Inserts a row at the current cursor position.
DELETE ROW (Amiga-J)
Deletes the current row.
PRINTER MENU
XX CPI
The first four options control how many characters can be output on a line.
NOTE: If you want to use 20 CPI (160 columns) then you must set preferences
to 160 columns as well. These options adjust the width of the text so even
if you only have a ten inch carriage, you still will be able to fit your wide
sheets in. In time I hope to provide a sideways printing utility (for
registered users of course!)
RESET PRINTER
Resets the printer to all the defaults set in preferences.
BOOKMARKS MENU
SET MARK X (Amiga- 1->5 + SHIFT)
Remembers the current cursor position, so that you can quickly return to this
spot.
GOTO MARK X (Amiga- 1->5)
Returns to the defined bookmark.
THE ICON BAR
This describes the boxes near the top of the screen.
LOAD/SAVE
Same as menu options Save and Load.
PRINT
A requester appears first to give you a chance to cancel, or position some
paper or get some extra help on printing. If you choose OK, another
requester will appear asking you what sort of print out to perform.
Currently there are three choices:
* Screen - Prints out everything that is visible on the screen.
* Block - Prints out everything in the marked block.
* Everything - Prints out the entire worksheet (carefull!)
B/I/U/P
Controls the style attribute of all cells in the marked range. B will add
BOLD to the range, I is italics, U is underline and P will cancel all the
rest.
L/C/R
Controls the justification of all the cells in the marked range. L makes
everything left justified, C will center the cells, and R will right
justify.
PREC/LOCK/UNLOCK/FORMAT
Prec allows you to enter the precision of the cells in the range. Lock will
lock the cells (preventing you from editing them), Unlock will reverse this,
and Format will let you change the cell format for the range.
BLOCK MARKING
More accuratly called a range. A block is an area of highlighted cells that
you can perform an operation on. An operation can be anything from cutting
the cells out and storing them in memory, to printing them out.
To mark a block just "drag" your mouse pointer. ie. Hold down the left
mouse button at the first cell to mark. Then move the mouse until all cells
you are interested in are highlighted. At this point release the mouse and
the block will be marked. Any operations from the edit menu or the icon bar
will act on just this range (instead of the whole worksheet). If you want to
mark a block bigger than the visible screen then move the mouse to the edge
of the screen and the screen will scroll (moving the block with it).
If you choose a block function and you have not marked a range, the current
cursor position is considered to be the block.
ENTERING DATA
The moment you enter an alpha-numeric character, the spreadsheet enters
COMMAND MODE. That is, all the menus are ghosted and everything you type
appears at the top of the screen.
Keys available in command mode:
Left + Right cursor keys - moves left and right.
Escape - aborts input and leaves everything unchanged.
Return - enters the data.
Control + X - clears the input.
HELP - see the HELP SYSTEM below.
In addition if you click the mouse onto a cell, then that cell reference
appears in the formular at the top of the screen. This makes it easier then
following the column and row at the sides and entering it yourself. If you
drag the mouse (like marking a block) then when the mouse is released the
cell range will appear in the formular.
In EasyCalc there are three types of cell:
Formular
String Constant
Numeric Constant
To denote the type of data you are entering, EasyCalc has the following
rules for the first character of the input:
Start string with Means
' String (left justified)
^ String (centered)
" String (right justified)
= Formular
A..z String Left justified (' will be added)
0..9 Numeric cell
\ String (repeats second character to width of column)
- Negative numeric cell
In a string, the first character is not displayed.
Examples:
'hello - left justified string
\- - displays a line of '-' (to fill the whole column)
-3 - a numeric cell with -3 is created
Go away - left justified string (a ' is added to the start of string)
=10+2 - formular is diplayed
Every cell in EasyCalc has a unique reference which is described by taking
the letter from the column at the top of the screen and the row number from
the left hand side of the screen. Using the system, the very first cell (in
the top left corner) is called A1. The next cell across is B1 and so on.
The cell below B1 is called B2 etc. In a formular you could have something
like =10+B6. This would get the value in cell B6 and add 10 to it. Then the
result would be displayed in this cell. This ability allows you to have a
global VAT rate (for example) and have all cells use the same VAT rate. If
the VAT rate changes, then it would be easy to change this one cell and all
the other cells would change to reflect the new rate.
In addition to cell references, there is something else called a cell range.
Some functions (like SUM) take a range of cells and display an answer. A
cell range is a rectangle of cells, everything in the rectangle becomes part
of the range. Normally you describe a range by the cells that make up the
top left corner and bottom right corner of the range. In a formular a cell
range that was to include A5 to G8 would be written A5:G8. Simple really?
While entering a formular, if you want to add a cell range into a formular,
then you can either enter the range manually with the keyboard, or drag the
mouse (as if you were marking a block). When you have finished marking the
block, it will appear in the formular.
ABSOLUTE CELL REFERENCES
Normally when you copy a formular cell to another location, all the cell
references are adjusted so that the formular still works. If you don't want
the formulars to be adjusted, you could always turn off the COPY RELATIVE
option. However there are times when this is not enough. For instance,
suppose you had a formular which referenced a cell that contained the current
UK VAT rate but you wanted all the other cell references to be free to
change. Everytime you copied the cell, it would no longer point to the VAT
rate and you would have to change it manually. In EasyCalc there is a symbol
that you can add to cell references that makes them ABSOLUTE. Whether COPY
RELATIVE is on or not, the cell reference will not change when it is copied:
If the VAT rate was stored in D6 (for example), then the absolute cell
reference would be, $D$6. Basically you stick a $ in front of the cell
reference. Notice that there is a $ infront of the 6 as well as the D. This
is because you can make the row or the column absolute or both. $D6 would
allow the 6 to change, while the D would remain unchanged. D$6 would lock
the 6 while allowing the D to be changed. The rule is place the $ infront of
the unit to lock.
GREEKING
If you have a numeric or formular cell and the value in it suddenly changes
to a '*' then don't worry this is called GREEKING. It means the answer in
the cell takes up more space then can fit in the cell. Just make the column
width bigger and the answer should reappear.
DATES
If you enter a date. ie any string in the following format:
DD-MM-YY
then EasyCalc will recognise that a date has been entered. If you want to
enter American dates then make sure the option, "EUROPEAN DATES" is not set.
Dates are just like any other EasyCalc string so the first character denotes
whether the justification etc as normal. Including the format character
("^') a date string MUST be 9 characters long otherwise it will not be
recognised as a date.
MATHS ERRORS
In maths, certain operations can cause an undefined result. For instance if
you try to divide something by zero, it will cause EasyCalc to produce an
error requester. Another error if performing a SQR (sqaure root) on a zero
or negative value.
EasyCalc will trap errors like:
=10/0
But if you have formular like:
=10/B6
EasyCalc will trap this error if B6 contains zero. But imagine you changed
this cell so it contained zero. EasyCalc would miss the error and you would
get a wierd value. Fortunatly it is easy to spot, because the cell will
evaluate to:
-0.000542E+14
This is obviously invalid. I could have had an error message popup but the
additonal checking would have slowed EasyCalc down quite a bit. If it
becomes a problem for any registered users then I will change it.
If you want to prevent the above problem, then try this formular:
=@IF(b6=0,10,10/b6)
This will make the number 10 appear if a divide by zero error would result.
Otherwise the normal divide is performed.
FORMULARS
OPERATORS:
An operator is something that performs an action on an expression. Basically
that means +-*/ etc. Below is a list of available operators, and a
description of the priority system:
(,)
^,>,<,>=,<=,<>,=
*,/
+,-
They have been listed in order of priority (also called precendance). If O
Level maths theory has long since escaped you then let me explain. For
example if you had 10+2*3, the laws of precendance would give an answer of 16
(2*3 then +10), this is because multiply has a higher precendance then +.
The highest precendance of all goes to brackets. Using brackets you can
force the order something is calculated in. The previous example would be
(10+2)*3 to give 36. By knowing about precendance you can order calculations
to minimise brackets and speed up the calculation.
Some of the above operators may look unfamiliar to you. Here is a
description of each:
(,) - See precendance above.
^ - Raise to the power of. eg. 2^4 would be "2 raised to power of four" or
would be written as 2 followed by a little four in the corner.
The next few are called comparisions, they are normally used in the @IF
command to compare numbers however you may need them for logical functions
sometimes. Basically they show if something is "true":
> - Greater than. Equals -1 if the value on the left of the > is greater
than the value on the right. Otherwise it returns 0.
< - Less than. The opposite of above.
>= - Greater than or equal to.
<= - Less than or equal to.
<> - Not equal to.
= - Equal to.
*,/,-,+ - Do I need to explain these?
Examples:
=10>5 would give -1. (10 IS greater than 5)
=5<>5 would give 0. (5 DOES equal 5)
=5<=5 would give -1. (5 IS less than or equal to 5)
Note the equal sign at the start of the examples. This tells EasyCalc that
what follows is a formular and not a string or something.
AVAILABLE FUNCTIONS:
A function is something that takes an expression and returns a value. Here
is a complete description of all the available functions in EasyCalc: (note
all functions start with a @)
@ABS(expression)
Returns the absolute value (ie. always a positive number)
@ATN(expression)
Returns the arctangent of the value (in radians)
@AVG(range)
Returns the average value of all the cells in the range.
@CINT(expression)
Returns the whole number of the expression.
@COS(expression)
Returns the cosine of the value in radians.
@DEG(expression)
Converts the expression from radians to degrees.
@EXP(expression)
Returns the exponent of the expression.
@FIX(expression)
Truncates the expression to a whole number.
@IF(expression,true expression,false expression)
If the expression is true (ie. evaluates to none zero) then the true
expression is evaluted and the result displayed, else the false expression is
calculated.
@INT(expression)
Rounds down the expression to a whole number.
@LOG(expression)
Returns the natural (base e) logarithm of the expression.
@MAX(range)
Returns the maximum value in cell range.
@MIN(range)
Returns the smallest value in the cell range.
@RAD(expression)
Converts the expression from degrees to radians.
@RND(expression)
Returns a random number between 0 and expression-1. Every time this is
evaluted it will change.
@SIGN(expression)
Returns the sign of the expression. If the expression was negative, then -1
is returned, 0 will return 0 and a positive (none zero) expression will give
+1.
@SIN(expression)
Returns the sine of the expression (in radians).
@SQR(expression)
Returns the square root of the value.
@SUM(range)
Returns the total of all cells in the range.
@TAN(expression)
Returns the tangent of the expression (in radians).
@VAT(expression)
Returns 17.5% of the expression.
HELP SYSTEM
If you are entering data in the command mode and you hit the HELP key, three
things can happen:
* If you were over a formular (over the @ in the formular), then detailed
help on that formular will appear.
* If you were over nothing in particular then a list of all the available
keys will appear. From this screen, you will be able to get a list of
formulars and a list of cell modifiers.
Many other EasyCalc requesters have a Help option. If you get a division by
zero error, then you will have three options, Correct, Help and Cancel. If
you choose Help then some detailed help will appear on that error.
When the Help window appears, the following keys are available:
F1/F2 - Loads in another (related) peice of help. See the bottom of the Help
window for more info.
ESC - Closes the window.
Cursor Keys - Scrolls up and down the text.
LOADING DATA
There are several ways to load data into EasyCalc:
* Choose LOAD in the menu or the icon bar.
* Double click on an EasyCalc project icon.
* Use extended selection on an EasyCalc project icon.
The second two options will automatically invoke EasyCalc and then load the
data file. The first option will bring up the ReqTools file selector. This
works like any file selector you have probably used before.
TECHNICAL INFORMATION
EASYCALC V1 FILE FORMAT
For technical users who may want to use EasyCalc generated files in their own
programming (a graphs maker for example), here is the current EasyCalc file
format:
Size Function
LONG 'EASY' text to identify an EC files.
WORD '10' text to flag the file version number.
BYTE last X (0-127) position of screen when saved.
BYTE last Y (1-127) position of screen when saved.
BYTE last X (0-127) position of cursor when saved.
BYTE last Y (1-127) position of cursor when saved.
BYTE number of column widths that follow (0-128).
BYTEs column widths, one byte for each.
...
BYTE type of data that follows:
1=Cell data, 2=Graph data, 3=No more data, 4=Prefs1 block.
If cell data follows then each cell is stored like this:
BYTE Cell X position
BYTE Cell Y position
BYTE Cell precision
BYTE Cell text style
BYTE Cell justification
BYTE Cell locked
BYTE Cell format (0=general, 1=Fixed)
BYTE Cell type, 1=string, 2=number, 3=expression
LONG Cell value (FFP single prec)
If type<>2 (number) tben
BYTE String length
BYTEs String
Endif
The end of a block is denoted by:
BYTE 200 End of block
If this was the final block then:
BYTE 3 End of all blocks
WB2 FEATURES
As EasyCalc development continues more WB2 functions will be exploited.
Conditional code is used so that EasyCalc will run on 1.3 or 2.0 (or 3.0) and
will only try to use the WB2.0 features if you are actually running 2.0. The
following WB2.0 features are used:
* Buffered Read/Writes - Saving a big file took 1.17 mins on 1.3, but using
these new 2.0 features I got that down to 20 secs!
* Public Screen - If you have 2.0 then EasyCalc is a public screen called
ECALC. I don't know how usefull you will find it (I never use public
screens) but it is there if you want it!
For the next version of EasyCalc I hope to add AppItem/Icons, maybe AREXX
too. Obviously to get in on the action you will have to register!
"COMPRIMISES" MADE BY THE AUTHOR
During the development of EasyCalc, several comprimises were taken by me to
ensure the product was the best possible. If you are searching for a
function and wondering why I have left it out, then let me explain the
EasyCalc design process and it should make things clearer:
* When I started EasyCalc I could either write another Amiga spreadsheet and
have exactly the same functions as them -- but what would be the point? When
I looked at Amiga spreadsheets I was very shocked. I saw two commercial
ones, and three PD ones. None of them were any good. The PD ones were slow,
while the commercial ones were slow, but had lots of features (!)
* The maximum size of an EasyCalc worksheet is 127 rows by 127 columns. If
you think this is restrictive (MaxiPlan can 32000 x 32000), then let me
explain some maths to you. If you filled every cell with a number then
nearly 400K would be needed in memory. Now lets say that a third of the
cells are strings (with the text "Hello"), and the usage increases to about
500K. Now imagine saving all that to disk. I did a test comparing MaxiPlan
with EasyCalc on the worksheet described above (127 x 127), and here are the
result:
Time to Save File Size
MAXIPLAN 4 38 secs 390000 bytes
EASYCALC 1 55 secs 189000 bytes
See the comprimise? EasyCalc takes longer to save (and especially load) but
the files are half the size! If you are running on floppy then you need all
the space you can get. The next version of EasyCalc should have a much
quicker time, when I figure out how to speed it up!
* Some spreadsheets allow you to display cells in lots of different colours.
I decided against this because:
a) It slows the screen update.
b) When you print it out, it will be in 1 colour anyway.
c) Saved files would be bigger.
d) EasyCalc already has BOLD, ITALIC, UNDERLINE which seemed a good enough.
e) The program would need a lot more memory (1.5 meg?) to run.
* I have used single precision numbers throughout EasyCalc. MaxiPlan can use
double precision. Before you complain, do you need 16 dec places accuracy
for your invoices? In addition double precision is 100 (yes 100!) times
slower than single precision, so it seemed a fair comprimise.
* EasyCalc doesn't have any "scroll-bars". I did not implement these because
of the slow down in the screen update they would cause. If you want them
then mention it in your program registration.
HINTS AND TIPS
* If you have a program like FastFonts or BlitzFonts, then run that before
you run EasyCalc. This will make screen update about twice as fast. FF can
be found in the C: directory of a 1.3+ WB disk. If you have 2.0 or 3.0
don't bother because EasyCalc already flies!
* If entering large amount of data, then turn auto recalc OFF.
* Make sure you are using the 1.3+ versions of all the maths libraries. The
versions supplied on 1.2 are slower. If you have installed an old peice of
software on your harddisk recently, then it may have overwritten the new
libraries so do check.
* If you are entering lots of columns of data, then turn automove on.
* Use the FastFileSystem (WB2+) and the command AddBuffers (any WB) on your
EasyCalc disk. This will speed up loading and saving, but will also make the
help system run quicker.
* If you have a program like PointerX (WB2 only) then the stopwatch will be
animated! Which looks very pretty!
* If you have a program like ExpLayer (WB2 only) then all requesters will
explode onto the screen. (Who says spreadsheets are boring?)
* If you have WB2.0 and 1.3 (ie. you have a choice) always run EasyCalc in
WB2.0. EasyCalc has several WB2 enhancements (the load routine is MUCH
quicker in WB2) and the screen update is quicker as well.
EASYCALC UPGRADE POLICY
EasyCalc is not finished! I have a massive list of things I would like to
add to it when I get more time. For registered users the following apply:
MAJOR UPGRADES
Usually cost about a fiver because there is a lot of new work in the upgrade.
Registered users are informed when a major upgrade is available. If the
upgrade is a REALLY major improvement then it may appear in magazine reviews
as well. However registered users will be told long before any such reviews
appear. Major improvements as suggested by the users will appear in these
releases.
MINOR UPGRADES
These can be ready at any time, and usually consist of bug fixes and new (or
improved) features. Minor suggestions from registered users will often
appear in these releases. I can't afford to write to every registered user
when every minor upgrade appears, but if you are registered then send me a
disk and a SAE and I will copy the latest release onto it for you.
REGISTERED USERS
If you find a bug in this or you have an idea for an improvement then please
contact me. Either write or phone (in the evening) and I will do my best to
fix the situation. I have had plenty of experience supporting my previous
shareware release, DiskManager so I can offer helpfull support.
EASYCALC - THE FUTURE
EasyCalc has a bright future. In V1.1 of EasyCalc, the graph module,
DreamGraph, will make an appearance. This is a seperate module but will make
use of something called DreamLink which allows programs to talk to each
other. If you have ever looked at ARexx and been daunted by learning a
programming language, then DreamLink is for you. It is a completly
transparent way of making programs talk to each other. If you are a
programmer of shareware applications then contact me for detailed technical
info on DreamLink. Already several programs are being written that will
feature DreamLink. YOU could add value to your product by incorparating an
DreamLink.
As EasyCalc develops (with your support) it will change from being what I
think a spreadsheet should be like, to what YOU think one should be. Which
means as far as YOU the user is concerned, EasyCalc can only get better.
I hope to do a WB2.0 version of EasyCalc that exploits the new features of
the new operating system. At present WB2.0 code is embedded in the one
version of EasyCalc. If you have a 1.3 machine don't worry EasyCalc will
support WB1.3 until everyone has 2.0!
DREAMLINKS - TELL ME MORE!
I came up with DreamLink to allow all Amigas to have a system like WB2
commodities. In the coming months, the following programs will become
available to exploit this new system:
* Spool - Printer spooler. Any file sent to this is copied into memory and
printed at leisure, without tying up the application.
* DreamManager - Controls all programs with a DreamLink. This will be
simular to the WB2 commodities exchange program.
* AutoSave - Makes all DreamLink programs save there data at a set time.
* DiskManager III - This will be the second major application to feature a
DreamLink. This is the latest version of my successfull disk catalogger.
(see below for comments)
* DreamGraph - Any program with a DreamLink will be able to get graphs drawn
of any data. This program can handle it all.
All the smaller programs will be available in the public domain. But this
shareware version of EasyCalc does NOT have an DreamLink.
Remember programmers: just by adding a DreamLink you will have access to the
facilities available in the above programs. You don't even have to
specically program for a certain application. If you are intrigued, then get
the technical info from me. It doesn't cost anything but it will add value
to your application.
EASYCALC - CURRENT PROBLEMS
I have put this section at the end of document in the hope that you won't
find it! Seriously though, this section lists things in EasyCalc that I
consider to be problems that need fixing:
* Fixed Format - this truncates a number instead of rounding it. Truncating
is MUCH quicker than rounding. I am going to add a proper rounding format,
but I may leave this one in to give YOU the choice of speed OR rounding. At
least I give you the choice unlike other Amiga spreadsheets that seem to
concentrate on features and forget about keeping it fast.
* Loading and Saving files - this is (in my mind) unexceptably slow on 1.3
machines. I will DEFINITLY fix this! (if you know how, contact me...)
CREDITS
Chris Wainwright - Wrote the installer. Comments.
Keith Williams at Kew=II - Comments and testing.
Simon Coulson - Comments.
Nico Francois - ReqTools (the best!)
Amiga - For the best computer ever.
OTHER PRODUCTS AVAILBLE FROM THE AUTHOR
DISKMANAGER 2.0D
Disk catalogger and organiser. Allows those elusive programs on Utilities
disk 16 to be found quickly. Amiga Shopper (Britains premier serious
magazine) gave this 9/10 and said "anyone with a large collection of floppies
should have DiskManager".
COST: £10
The above is compatible with any Amiga and ANY Workbench. Whether you only
have 1/2 a meg or 8 megs. The only requirement is a PAL computer.